package com.ityy.ruiji.dao;

import com.ityy.ruiji.entity.Employee;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import javax.websocket.server.PathParam;
import java.util.List;


public interface RuiJiDao {

    @Select("select * from employee where username = #{username}")
    Employee findByUserName(Employee employee);

    @Insert("insert into employee values(null,#{name},#{username},#{password},#{phone},#{sex},#{idNumber},#{status},#{createTime},#{updateTime},#{createUser},#{updateUser})")
    int save (Employee employee);


    //由于前端搜索的时候有可能是没有name传递给你的，所以需要判断name是否有值，所以需要使用动态sql语句、
    //如果使用动态sql语句，参数是简单类型的时候，即使只有一个参数也需要使用@Param注解声明参数的名称
    public List<Employee> findByName(@Param("name") String name);


    //建议：这个方法可以更新员工所有的字段，因为修改员工的状态与修改员工基本信息都是属于修改，只不过修改的字段不一样。
    //由于修改的字段不一样，有时候有些字段的值为空，所以建议使用动态sql语句
    int update(Employee employee);

    @Select("select * from employee where id =#{id}")
    Employee  findById(Long id);
}
